package com.jsoft.jsofted.framework.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jsoft.jsofted.framework.utils.PageResult;

import java.util.List;
import java.util.Map;

public interface CocService<E> extends IService<E> {

    /**
     * 对当前数据(currRecordId)进行排序。排序成功后当前数据的前一条是 prevRecordId、后一条是 nextRecordId。
     */
    boolean sort(String prevRecordId, String currRecordId, String nextRecordId);

    /**
     * 查询满足条件的数据列表save
     *
     * @param queryParams
     * @return
     */
    List queryList(Map queryParams);

    /**
     * 查询满足条件的分页数据
     *
     * @param queryParams
     * @return
     */
    PageResult queryPageResult(Map queryParams);

    <T> List<T> queryTree(Map queryParams);

    boolean deleteBy(Map queryParams);

    /**
     * 批量全覆盖满足条件的全部数据，即先批量删除满足条件的全部数据、再新增。
     * 1. 待删除的每条数据条件是相同的；
     * 2. 通常用于一对多子表的批量操作。
     * @return
     */
    boolean deleteThenAdd(Map deleteParams, List newDatas);

    boolean saveAll(List<String> uniqueFields, List newDatas);

    Object getBy(Map queryParams);
}
